Projet type Pho

L'organisation d'un site Pho standard est la suivante:

...application/
:   :..appDocument.php
:   :..*.php
:..classes/
:   :..htmlDocument.php
:   :..*.php
:..www/
:   :..index.php
:   :..css/
:   :   :..styles.css
:   :..img/
:       :..logo.jpg
:..classes.php

Le répertoire public www

On part du principe que le répertoire www est la racine du site. Tous les fichiers à l'intérieur de ce répertoire sont accessibles depuis un navigateur web (sauf avis contraire du serveur web, .htaccess, ...).

Dans le sous-répertoire css on retrouvera ce qui concerne les feuilles de styles (y compris les images de style) et dans img on placera les images affichées via la balise <IMG>; c'est à dire un "document" image par opposition à une image de style qui sert uniquement à la décoration de la page.

Le projet pourra évidemment comprendre d'autres répertoires selon les besoins.

La partie privée ../

Afin d'assurer simplement et efficacement la sécurité des autres fichiers, ils seront placés en dehors de l'espace public, juste avant le répertoire www.

On placera dans un sous-répertoires classes toutes les classes objets du framework Pho, et dans un sous répertoire application tous les objets spécifiques à l'application.

Le script classes.php à pour but de faire le lien entre les scripts publics comme index.php et les sous-répertoires privés. En faisant référence à ce fichier en début de script, toutes les classes objets du framework sont accessibles:


<?php
require_once('../classes.php');

$document = new appDocument();
$document->output();

Nommage alternatif

Si le site web est susceptible d'héberger plusieurs sites différents, il est possible de renommer les fichiers classes.php et le répertoire application avec le nom du produit.

...application1/
:..application2/
:..classes/
:..www/
:   :..index1.php
:   :..index2.php
:..application1.php
:..application2.php

le fichier index1.php utilisera le fichier ../application1.php qui cherchera ses objets dans application1/ et classes/.

le fichier index2.php utilisera le fichier ../application2.php qui cherchera ses objets dans application2/ et classes/.